package business.aluguel;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import business.sistema.ObjetoSistema;

public class Cliente extends ObjetoSistema
{
	private static final long serialVersionUID = -3249693925960631454L;
	private int codigo;
	private String nome;
	private String identidade;
	private String cpf;
	private String cnh;
	private String telefone;
	private String celular;
	private String contato1;
	private String telefone1;
	private String contato2;
	private String telefone2;
	private TipoCnh tipoCnh;
	private Date dataNascimento;
	private Set<Endereco> enderecos;
	private Set<Aluguel> alugueis;
	private MotoristaAdicional motoristaAdicional;
	private Set<EmpresaCliente> empresas;
	
	public int getCodigo()
	{
		return codigo;
	}
	
	public void setCodigo(int codigo)
	{
		this.codigo = codigo;
	}
	
	public String getNome()
	{
		return nome;
	}
	
	public void setNome(String nome)
	{
		this.nome = nome;
	}
	
	public String getIdentidade()
	{
		return identidade;
	}
	
	public void setIdentidade(String identidade)
	{
		this.identidade = identidade;
	}
	
	public String getCpf()
	{
		return cpf;
	}
	
	public void setCpf(String cpf)
	{
		this.cpf = cpf;
	}
	
	public void setCnh(String cnh)
	{
		this.cnh = cnh;
	}

	public String getCnh()
	{
		return cnh;
	}

	public String getTelefone()
	{
		return telefone;
	}
	
	public void setTelefone(String telefone)
	{
		this.telefone = telefone;
	}
	
	public String getCelular()
	{
		return celular;
	}
	
	public void setCelular(String celular)
	{
		this.celular = celular;
	}
	
	public String getContato1()
	{
		return contato1;
	}

	public void setContato1(String contato1)
	{
		this.contato1 = contato1;
	}

	public String getTelefone1()
	{
		return telefone1;
	}

	public void setTelefone1(String telefone1)
	{
		this.telefone1 = telefone1;
	}

	public String getContato2()
	{
		return contato2;
	}

	public void setContato2(String contato2)
	{
		this.contato2 = contato2;
	}

	public String getTelefone2()
	{
		return telefone2;
	}

	public void setTelefone2(String telefone2)
	{
		this.telefone2 = telefone2;
	}

	public void setTipoCnh(TipoCnh tipoCnh)
	{
		this.tipoCnh = tipoCnh;
	}

	public TipoCnh getTipoCnh()
	{
		return tipoCnh;
	}

	public void setDataNascimento(Date dataNascimento)
	{
		this.dataNascimento = dataNascimento;
	}

	public Date getDataNascimento()
	{
		return dataNascimento;
	}

	public Set<Endereco> getEnderecos()
	{
		return enderecos;
	}
	
	public void setEnderecos(Set<Endereco> enderecos)
	{
		this.enderecos = enderecos;
	}
	
	public void addEndereco(Endereco endereco)
	{
		if(enderecos == null)
		{
			enderecos = new HashSet<Endereco>();
		}
		
		enderecos.add(endereco);
		endereco.setCliente(this);
	}

	public void setAlugueis(Set<Aluguel> alugueis)
	{
		this.alugueis = alugueis;
	}

	public Set<Aluguel> getAlugueis()
	{
		return alugueis;
	}
	
	public void addAluguel(Aluguel aluguel)
	{
		if(aluguel != null)
		{
			if(getAlugueis() != null)
			{
				alugueis = new HashSet<Aluguel>();
			}
			
			alugueis.add(aluguel);
			aluguel.setCliente(this);
		}
	}

	public void setMotoristaAdicional(MotoristaAdicional motoristaAdicional)
	{
		this.motoristaAdicional = motoristaAdicional;
	}

	public MotoristaAdicional getMotoristaAdicional()
	{
		return motoristaAdicional;
	}

	public void setEmpresas(Set<EmpresaCliente> empresas)
	{
		this.empresas = empresas;
	}

	public Set<EmpresaCliente> getEmpresas()
	{
		return empresas;
	}
	
	public void addEmpresa(EmpresaCliente empresa)
	{
		if(empresas == null)
		{
			empresas = new HashSet<EmpresaCliente>();
		}
		
		empresas.add(empresa);
		empresa.setCliente(this);
	}
}
